<script type="text/javascript">
var a = 2;
{
  let a = 3;
  document.write(a); // 3
}
document.write('<br>');
document.write(a); // 2

//let 命令
//let 是在代码块内有效，var 是在全局范围内有效:
//let 只能声明一次 var 可以声明多次:
//不存在变量提升:let 不存在变量提升，var 会变量提升:
{
  let a1 = 0;
  var b1 = 1;
}
document.write('<br>');
document.write(b1)   // 1
//document.write(a1)  // ReferenceError: a is not defined
//demo01.html:18 Uncaught ReferenceError: a1 is not defined at demo01.html:18


for (var i = 0; i < 3; i++) {
  setTimeout(function(){
    console.log(i);
  })
}
// 输出3个 3
for (let j = 0; j < 10; j++) {
  setTimeout(function(){
    console.log(j);
  })
}
// 输出 0123456789


//const 命令
//const 声明一个只读变量，声明之后不允许改变。意味着，一旦声明必须初始化，否则会报错。



</script>